Linux 密码文件

        密码文件 /etc/shadow 和 ·/etc/passwd·,类似,都是 Linux 系统最重要的文件之一,用 分割成9个字段。

1
2
3
4
[root@localhost ~]# cat /etc/shadow |head -n 3
root:$6$Wo0kPkgm$OAp0Wl2AsaE4ei4YVbxo3DIU5OBSYxn1y7qxB5Jns70Yk91AvzElsR5GmoGCC8DUXkKzK7vyiV8wXNeaWNm861:15832:0:99999:7:::
bin:*:15628:0:99999:7:::
daemon:*:15628:0:99999:7:::

每个字段的含义

1. 用户名

        跟 /etc/passwd 对应。

2. 用户密码

        这个才是该帐号真正的密码,不过这个密码已经加密了,但是还是能够解密的。所以该文件属性设置为000,但是 root 账户是可以访问或更改的。

1
2
[root@localhost ~]# ls -l /etc/shadow
---------- 1 root root 719 5月 10 09:02 /etc/shadow

        root的密码很长,通常以 $6$ 开头;
        “*” 表示账户被 锁定
        “!!” 账户还没有密码
        注意:CentOS 的加密方式就是 sha-512。 $6$ 开头是 sha-512 ;$5$ 开头是 sha-256 ;$1$ 表明是用 MD5 加密。

3. 上次更改密码的日期

        这个数字的计算是,距离1970年1月1日到上次更改密码的日期,单位是天。例如上次更改密码的日期为2012年1月1日,则这个值就是 ‘365×(2012-1970)+(2012-1970)÷4+1 = 15341’。因为如果是闰年,则有366天。

4. 要过多少天才可以可以更改密码

        默认是0,即不限制。

5. 密码多少天后到期

        即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。

6. 密码到期前的警告期限

        若这个值设置成7,则表示当7天后密码过期时,系统就发出告警告诉用户,提醒用户他的密码将在7天后到期。

7. 帐号失效期限

        可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个帐号就失效了,即锁定了。

8. 帐号的生命周期

        跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,帐号在这个日期前可以使用,到期后帐号作废。

9. 作为保留用的

        没有什么意义。